package org.wang.generalcode.modules.sys.mapper;

import org.apache.ibatis.annotations.Param;
import org.wang.generalcode.modules.sys.pojo.entity.Log;
import org.wang.generalcode.modules.sys.pojo.params.LogPageParams;
import org.wang.generalcode.modules.sys.pojo.vo.LogCountVO;
import org.wang.generalcode.modules.sys.pojo.vo.LogPageVO;
import org.wang.generalcode.modules.sys.pojo.vo.LogStatsVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;

/**
 * 系统日志表 Mapper 接口
 *
 * @author wz
 * @since 2024-08-08
 */
public interface LogMapper extends BaseMapper<Log> {

	/**
	 * 自定义分页
	 *
	 * @param page
	 * @param logPageParams
	 * @return
	 */
	List<LogPageVO> selectLogPage(IPage<LogPageVO> page, @Param("queryParams") LogPageParams logPageParams);

	/**
	 * 统计浏览数(PV)
	 *
	 * @param startDate 开始日期 yyyy-MM-dd
	 * @param endDate   结束日期 yyyy-MM-dd
	 * @return
	 */
    List<LogCountVO> getPvCounts(String startDate, String endDate);

	/**
	 * 统计IP数
	 *
	 * @param startDate 开始日期 yyyy-MM-dd
	 * @param endDate   结束日期 yyyy-MM-dd
	 * @return
	 */
	List<LogCountVO> getIpCounts(String startDate, String endDate);

	/**
	 * 获取浏览量(PV)统计数据
	 *
	 * @return
	 */
	LogStatsVO getPvStats();

	/**
	 * 获取IP统计数据
	 *
	 * @return
	 */
	LogStatsVO getIpStats();
}
